package com.spring.sunflower.common;

import com.spring.sunflower.base.BaseView;
import com.spring.sunflower.bean.AccountBean;
import com.spring.sunflower.bean.AccountMoneyBean;
import com.spring.sunflower.bean.AnchorDetailBean;
import com.spring.sunflower.bean.BalanceBean;
import com.spring.sunflower.bean.BillBean;
import com.spring.sunflower.bean.BillListBean;
import com.spring.sunflower.bean.BlackListBean;
import com.spring.sunflower.bean.CheckApplyFaceVerifyBean;
import com.spring.sunflower.bean.FaceAuthStatusBean;
import com.spring.sunflower.bean.FansBean;
import com.spring.sunflower.bean.IncomeChatBean;
import com.spring.sunflower.bean.IncomeGiftBean;
import com.spring.sunflower.bean.IncomeVideoChatBean;
import com.spring.sunflower.bean.LabelBean;
import com.spring.sunflower.bean.PhotoListBean;
import com.spring.sunflower.bean.PhotoListReleaseBean;
import com.spring.sunflower.bean.STSCertBean;
import com.spring.sunflower.bean.SignInBean;
import com.spring.sunflower.bean.TaskAwardDailyBean;
import com.spring.sunflower.bean.TaskAwardSignBean;
import com.spring.sunflower.bean.TaskBean;
import com.spring.sunflower.bean.UserInfoUpdateBean;
import com.spring.sunflower.bean.VideoListBean;
import com.spring.sunflower.bean.VideoPlayBean;
import com.spring.sunflower.bean.VideoShowReleaseBean;
import com.spring.sunflower.bean.WeChatH5Bean;
import com.spring.sunflower.bean.WeChatH5PayResultBean;
import com.spring.sunflower.bean.WeChatPayBean;
import com.spring.sunflower.bean.WithdrawRecordBean;

import java.util.List;

/**
 * Created by Kevin on 2021/6/24<br/>
 * <p>
 * Describe:<br/>
 */
public class CommonContract {
    public interface ReportView extends BaseView {
        void reportSuccess();

        void reportFailed();

        void loadSTSCert(STSCertBean.DatasBean data);
    }

    public interface HobbyView extends BaseView {
        void showHobby(List<LabelBean.DatasBean> data);

        void registerSucceed();

        void registerFailed(int status, String msg);

    }

    public interface HobbyLabelView extends BaseView {
        void showHobby(List<LabelBean.DatasBean> data);

        void updateSuccess();

        void updateFailed();
    }

    public interface UserInfoEditView extends BaseView {
        void showData(AnchorDetailBean.DatasBean data);

        void realAuth(boolean b);

        void personInfoFinish(boolean b);

        void showLabelData(List<LabelBean.DatasBean> data, String type);

        void updateSuccess(UserInfoUpdateBean.DatasBean data);

        void updateSuccess(UserInfoUpdateBean.DatasBean data, boolean updateAvatar);

        void updateFailed();

        void loadSTSCert(STSCertBean.DatasBean data);
    }

    public interface NicknameEditView extends BaseView {
        void updateSuccess();

        void updateFailed();
    }

    public interface PhotoWallView extends BaseView {
        void updateSuccess(PhotoListReleaseBean.DatasBean bean);

        void updateFailed();

        void querySuccess(List<PhotoListBean.DatasBean> data);

        void queryFailed();

        void deleteSuccess(int position);

        void deleteFailed();

        void loadSTSCert(STSCertBean.DatasBean data);
    }

    public interface PhotoListView extends BaseView {
        void querySuccess(List<PhotoListBean.DatasBean> data);

        void queryFailed();
    }

    public interface VideoShowListView extends BaseView {
        void updateSuccess(VideoShowReleaseBean.DatasBean bean);

        void updateFailed();

        void querySuccess(List<VideoListBean.DatasBean> data);

        void queryFailed();

        void deleteSuccess(int position);

        void deleteFailed();

        void loadSTSCert(STSCertBean.DatasBean data);
    }

    public interface VoiceSignView extends BaseView {
        void showTextTemplate(List<LabelBean.DatasBean> data);

        void updateSuccess(UserInfoUpdateBean.DatasBean bean);

        void updateFailed();

        void loadSTSCert(STSCertBean.DatasBean data);
    }


    public interface OnlineStatusView extends BaseView {
        void showOnlineStatus(List<LabelBean.DatasBean> data);

        void setOnlineStatusSuccess();

        void setOnlineStatusFailed();
    }

    public interface AccountTypeView extends BaseView {

    }

    public interface AccountOffView extends BaseView {
        void accountOffSuccess();
    }

    public interface BlackListview extends BaseView {
        void showBlackList(List<BlackListBean.DatasBean> data);
//        void blackAddSuccess();
//
//        void blackAddFailed();

        void blackRemoveSuccess();

        void blackRemoveFailed();
    }

    public interface FeedbackView extends BaseView {
        void feedbackSuccess();

        void feedbackFailed();
    }


    public interface RelationView extends BaseView {
        void showRelationList(List<FansBean.DatasBean> data);

        void setFollowedSuccess();

        void setFollowedFailed();
    }

    public interface BalanceView extends BaseView {
        void showAccount(AccountBean.DatasBean data);

        void showBalanceList(List<BalanceBean.Data> data);

        void showAliGenerateData(String data);

        void showAliGenerateH5Data(String data);

        void showAliGenerateVipData(String data);

        void showWeChatGenerateData(WeChatPayBean.DatasBean data);

        void showWeChatGenerateH5Data(WeChatPayBean.DatasBean data);

        void showWeChatGenerateVipData(WeChatPayBean.DatasBean data);

        void showWeChatH5Data(WeChatH5Bean.DatasBean data);

        void showWeChatH5PayResult(WeChatH5PayResultBean.DatasBean data);
    }

    public interface AwardView extends BaseView {
        void showDailyAward(List<TaskAwardDailyBean.DatasBean> bean);

        void showNewerAward(List<TaskAwardDailyBean.DatasBean> bean);

        void showSignAward(List<TaskAwardSignBean.DatasBean> bean);
    }

    public interface IncomeView extends BaseView {
        void showIncomeGift(List<IncomeGiftBean.DatasBean> bean);

        void showIncomeChat(List<IncomeChatBean.DatasBean> bean);

        void showIncomeVideoChat(List<IncomeVideoChatBean.DatasBean> bean);
    }

    public interface BillDetailView extends BaseView {
        void showBillDetail(List<BillBean.DatasBean> data);
    }

    public interface ChargeRecordView extends BaseView {
        void showChargeRecord(List<BillListBean.Data> data);
    }

    public interface WithDrawView extends BaseView {
        void showAccountMoneyInfo(AccountMoneyBean.DatasBean data);

        void bindSuccess();
    }

    public interface WithDrawRecordView extends BaseView {
        void showWithdrawRecord(List<WithdrawRecordBean.DatasBean> data);
    }


    public interface AuthCenterView extends BaseView {
        void showFaceAuthStatus(FaceAuthStatusBean.DatasBean data);

        void showCheckFaceAuthStatus(CheckApplyFaceVerifyBean.DatasBean data);

        void beautyAuthApplySuccess();
    }

    /**
     * 颜值认证状态
     */
    public interface FaceVerifyStatusView extends BaseView {

    }

    /**
     * 检查是否可以重现进行颜值认证
     */
    public interface CheckFaceVerifyStatusView extends BaseView {

    }

    public interface AuthRealView extends BaseView {
        void loadSTSCert(STSCertBean.DatasBean data);

        void authRealSuccess();

        void authRealFailed();
    }

    public interface VideoPlayView extends BaseView {
        void showVideoList(List<VideoPlayBean.DatasBean> data);
    }

    public interface TaskView extends BaseView {
        void showTaskList(TaskBean.DatasBean data);

        void signSuccess(SignInBean.DatasBean data);

        void noSign();

        void showSignRecord(SignInBean.DatasBean data);
    }

    public interface BindPhoneView extends BaseView {
        void bindSuccess();

    }
}
